package com.newjiabo.ski.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.newjiabo.common.annotation.Excel;
import com.newjiabo.common.core.domain.BaseEntity;

/**
 * 售后对象 ski_after_sale
 *
 * @author CaoMengHui
 * @date 2023-09-23
 */
public class SkiAfterSale extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private String id;

    /**
     * 删除标志 true/false 删除/未删除
     */
    @ApiModelProperty(value = "删除标志 true/false 删除/未删除")
    @Excel(name = "删除标志 true/false 删除/未删除")
    private Boolean deleteFlag;

    /**
     * 实际退款金额
     */
    @ApiModelProperty(value = "实际退款金额")
    @Excel(name = "实际退款金额")
    private Double actualRefundPrice;

    /**
     * 评价图片
     */
    @ApiModelProperty(value = "评价图片")
    @Excel(name = "评价图片")
    private String afterSaleImage;

    /**
     * 申请退款金额
     */
    @ApiModelProperty(value = "申请退款金额")
    @Excel(name = "申请退款金额")
    private Double applyRefundPrice;

    /**
     * 商家备注
     */
    @ApiModelProperty(value = "商家备注")
    @Excel(name = "商家备注")
    private String auditRemark;

    /**
     * 实际金额
     */
    @ApiModelProperty(value = "实际金额")
    @Excel(name = "实际金额")
    private Double flowPrice;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    @Excel(name = "用户ID")
    private String memberId;

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称")
    @Excel(name = "用户名称")
    private String memberName;

    /**
     * 订单支付方式返回的交易号
     */
    @ApiModelProperty(value = "订单支付方式返回的交易号")
    @Excel(name = "订单支付方式返回的交易号")
    private String payOrderNo;

    /**
     * 问题描述
     */
    @ApiModelProperty(value = "问题描述")
    @Excel(name = "问题描述")
    private String problemDesc;

    /**
     * 申请原因
     */
    @ApiModelProperty(value = "申请原因")
    @Excel(name = "申请原因")
    private String reason;

    /**
     * 退款时间
     */
    @ApiModelProperty(value = "退款时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date refundTime;

    /**
     * 退款方式
     * @see com.newjiabo.ski.domain.enums.AfterSaleRefundWayEnum
     */
    @ApiModelProperty(value = "退款方式")
    @Excel(name = "退款方式")
    private String refundWay;

    /**
     * 退款入库账户
     */
    @ApiModelProperty(value = "退款入库账户")
    @Excel(name = "退款入库账户")
    private String userReceivedAccount;

    /**
     * 售后单状态
     * @see com.newjiabo.ski.domain.enums.AfterSaleEnum
     */
    @ApiModelProperty(value = "售后单状态")
    @Excel(name = "售后单状态")
    private String serviceStatus;

    /**
     * 商户订单号
     */
    @ApiModelProperty(value = "商户订单号")
    @Excel(name = "商户订单号")
    private String outTradeNo;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    @Excel(name = "订单id")
    private String orderId;

    /**
     * 商户退款单号
     */
    @ApiModelProperty(value = "商户退款单号")
    @Excel(name = "商户退款单号")
    private String outRefundNo;

    /**
     * 微信平台退款受理时间
     */
    @ApiModelProperty(value = "微信平台退款受理时间")
    private String wxRefundAcceptanceTime;

    /**
     * 微信平台退款受理状态
     */
    @ApiModelProperty(value = "微信平台退款受理状态")
    private String wxRefundStatus;

    @ApiModelProperty(value = "微信退款订单号")
    private String refundId;

    public String getRefundId() {
        return refundId;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public Boolean getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(Boolean deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public void setActualRefundPrice(Double actualRefundPrice) {
        this.actualRefundPrice = actualRefundPrice;
    }

    public Double getActualRefundPrice() {
        return actualRefundPrice;
    }

    public void setAfterSaleImage(String afterSaleImage) {
        this.afterSaleImage = afterSaleImage;
    }

    public String getAfterSaleImage() {
        return afterSaleImage;
    }

    public void setApplyRefundPrice(Double applyRefundPrice) {
        this.applyRefundPrice = applyRefundPrice;
    }

    public Double getApplyRefundPrice() {
        return applyRefundPrice;
    }

    public void setAuditRemark(String auditRemark) {
        this.auditRemark = auditRemark;
    }

    public String getAuditRemark() {
        return auditRemark;
    }

    public void setFlowPrice(Double flowPrice) {
        this.flowPrice = flowPrice;
    }

    public Double getFlowPrice() {
        return flowPrice;
    }

    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }

    public String getMemberId() {
        return memberId;
    }

    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }

    public String getMemberName() {
        return memberName;
    }

    public void setPayOrderNo(String payOrderNo) {
        this.payOrderNo = payOrderNo;
    }

    public String getPayOrderNo() {
        return payOrderNo;
    }

    public void setProblemDesc(String problemDesc) {
        this.problemDesc = problemDesc;
    }

    public String getProblemDesc() {
        return problemDesc;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getReason() {
        return reason;
    }

    public void setRefundTime(Date refundTime) {
        this.refundTime = refundTime;
    }

    public Date getRefundTime() {
        return refundTime;
    }

    public void setRefundWay(String refundWay) {
        this.refundWay = refundWay;
    }

    public String getRefundWay() {
        return refundWay;
    }

    public void setServiceStatus(String serviceStatus) {
        this.serviceStatus = serviceStatus;
    }

    public String getServiceStatus() {
        return serviceStatus;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOutRefundNo(String outRefundNo) {
        this.outRefundNo = outRefundNo;
    }

    public String getOutRefundNo() {
        return outRefundNo;
    }


    public String getUserReceivedAccount() {
        return userReceivedAccount;
    }

    public void setUserReceivedAccount(String userReceivedAccount) {
        this.userReceivedAccount = userReceivedAccount;
    }

    public String getWxRefundAcceptanceTime() {
        return wxRefundAcceptanceTime;
    }

    public void setWxRefundAcceptanceTime(String wxRefundAcceptanceTime) {
        this.wxRefundAcceptanceTime = wxRefundAcceptanceTime;
    }

    public String getWxRefundStatus() {
        return wxRefundStatus;
    }

    public void setWxRefundStatus(String wxRefundStatus) {
        this.wxRefundStatus = wxRefundStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("deleteFlag", getDeleteFlag())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("actualRefundPrice", getActualRefundPrice())
                .append("afterSaleImage", getAfterSaleImage())
                .append("applyRefundPrice", getApplyRefundPrice())
                .append("auditRemark", getAuditRemark())
                .append("flowPrice", getFlowPrice())
                .append("memberId", getMemberId())
                .append("memberName", getMemberName())
                .append("payOrderNo", getPayOrderNo())
                .append("problemDesc", getProblemDesc())
                .append("reason", getReason())
                .append("refundTime", getRefundTime())
                .append("refundWay", getRefundWay())
                .append("serviceStatus", getServiceStatus())
                .append("outTradeNo", getOutTradeNo())
                .append("orderId", getOrderId())
                .append("outRefundNo", getOutRefundNo())
                .toString();
    }
}
